/*
 * UsuariosAdmin.java
 *
 * Created on 24 de julio de 2007, 08:41 AM
 */

package administrador;
import javax.swing.*;
import java.sql.*;
/**
 *
 * @author  nexxus
 */
public class UsuariosAdmin extends javax.swing.JPanel {
 Usuario user;
 int bodega;
 Conexion conexion;
 JTable tabla;
 JScrollPane js;
    
    /** Creates new form UsuariosAdmin */
    public UsuariosAdmin(Conexion cEnt,int BEnt,Usuario user) {
        conexion=cEnt;
        this.user=user;
        bodega=BEnt;
        
        initComponents();
        
        refrescar();
        setVisible(true);
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        bt_crear = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        jLabel14 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        ck_habilitado = new javax.swing.JCheckBox();

        setLayout(new java.awt.BorderLayout());

        jPanel1.setLayout(null);

        bt_crear.setFont(new java.awt.Font("Tahoma", 1, 11));
        bt_crear.setForeground(new java.awt.Color(153, 0, 51));
        bt_crear.setText("Crear Usuario");
        bt_crear.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bt_crearActionPerformed(evt);
            }
        });
        jPanel1.add(bt_crear);
        bt_crear.setBounds(610, 70, 130, 50);

        jLabel1.setFont(new java.awt.Font("Stencil", 1, 30));
        jLabel1.setForeground(new java.awt.Color(0, 153, 153));
        jLabel1.setText("Usuarios");
        jPanel1.add(jLabel1);
        jLabel1.setBounds(30, 10, 240, 31);

        jLabel14.setForeground(new java.awt.Color(255, 153, 0));
        jLabel14.setText("Administrando");
        jPanel1.add(jLabel14);
        jLabel14.setBounds(150, 20, 70, 40);

        jButton1.setText("Log Usuarios");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        jPanel1.add(jButton1);
        jButton1.setBounds(610, 120, 130, 23);

        ck_habilitado.setText("Mostrar Deshabilitados");
        ck_habilitado.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        ck_habilitado.setMargin(new java.awt.Insets(0, 0, 0, 0));
        ck_habilitado.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ck_habilitadoActionPerformed(evt);
            }
        });
        jPanel1.add(ck_habilitado);
        ck_habilitado.setBounds(610, 150, 130, 15);

        add(jPanel1, java.awt.BorderLayout.CENTER);
    }// </editor-fold>//GEN-END:initComponents

    private void ck_habilitadoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ck_habilitadoActionPerformed
// TODO add your handling code here:
        refrescar();
    }//GEN-LAST:event_ck_habilitadoActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO add your handling code here:
        VentLogUsuarios vlu=new VentLogUsuarios(conexion,bodega,user);
    }//GEN-LAST:event_jButton1ActionPerformed
    public void refrescar(){
        String consulta="";
        if(ck_habilitado.isSelected()){
        //Mostrar Todos
            consulta="select cod_usuario as 'Codigo',nombre as 'Nombre',login as 'Login',privilegios as 'Privilegios',estado as 'Habilitado' from usuario;";
        }else{
        //Mostrar solo habiliatos
             consulta="select cod_usuario as 'Codigo',nombre as 'Nombre',login as 'Login',privilegios as 'Privilegios',estado as 'Habilitado' from usuario where estado=true;";
        }
    //cod_usuario as Codigo,nombre as Nombre,privilegios as Privilegios
        ResultSet respuesta=null;
        respuesta=conexion.consultarBase(consulta);
          
        //Obtengo Filas-Arreglo de Titulos de Columnas
        int filas=conexion.obtenerFilas(respuesta);
        String[] titulosCol=conexion.obtenerColumnas(respuesta);
        
        //Creo la tabla:
        
        CrearTabla(filas,titulosCol);
        llenaTabla(respuesta,titulosCol.length,filas);
       
       
    }
    
    
    public void llenaTabla(ResultSet r,int columnas,int filas){
        try{
            r.beforeFirst();
            
            int j=0;
            while(r.next()) {
                
                
                for(int i=0;i<columnas;i++) {
                    
                    Object toma=r.getObject(i+1);
                    //System.out.println("toma valor:"+toma+" * fila:"+j+" * column:"+i);
                    try{
                        tabla.setValueAt(toma,j,i);
                    }catch(java.lang.ArrayStoreException e){
                        tabla.setValueAt("null",j,i);
                    }
                }
                
            j++;    
            }
        }catch(SQLException sqle){
           //System.out.println("Error al mostrar los datos");
            System.err.println(sqle);
        }
        
    }
    
public void CrearTabla(int filas,String[] titulos){
        
        int columnas=titulos.length;
        String[][] tabla0=new String[filas][columnas];
       
        tabla= new JTable(tabla0,titulos);
        
        //Aqui le especifico para que la tabla acepte valores doubles e int:
        //--------------------------------------------------------------------
        final boolean[] canEdit = new boolean [columnas];
        for(int p=0;p<columnas;p++){
        canEdit[p]=false;
        }
        tabla.setModel(new javax.swing.table.DefaultTableModel(
            tabla0,titulos  
        ) {
           // boolean[] canEdit = new boolean [] { false, false, false, false};

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        //---------------------------------------------------------------------
         //Le doy el evento del LCick del Mouse:
        tabla.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                tablaMouseClicked(evt);
            }
        });
        //remuevo el JScroll para que no se monte cuando cree el nuevo:
        //*************************************************************
        try{
        jPanel1.remove(js);
        }catch(java.lang.NullPointerException e){}
        //*************************************************************
        
        //Pongo en la tabla:
            js = new JScrollPane(tabla);
                        
            js.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(198, 196, 196)));
            js.setBounds(22,60, 580, 300);
            js.setVisible(true);
            jPanel1.add(js);
            js.updateUI();
    }
 

 private void tablaMouseClicked(java.awt.event.MouseEvent evt) {
    // Evento del click del mouse sobre la tabla:
         int fila=tabla.getSelectedRow();
        //System.out.println("Click en la Fila :"+fila);
         CrearUser cu=new CrearUser(conexion,this,fila);
 }
    
    private void bt_crearActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_crearActionPerformed
// TODO add your handling code here:
       CrearUser creaUser=new CrearUser(conexion,this);
    }//GEN-LAST:event_bt_crearActionPerformed
    
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton bt_crear;
    private javax.swing.JCheckBox ck_habilitado;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JPanel jPanel1;
    // End of variables declaration//GEN-END:variables
    
}
